import requests
import json
from comm.module import *
# from comm.LogUtils import logger
# from comm.postgresutility import postsql_utility
import datetime
import hashlib

#67 课表 新增或修改
def doAddCourse():
    try:

        timestamp = int((datetime.datetime.now().timestamp()) * 1000)
        # print("时间："+timestamp)

        # sign 签名 生成方式:md5(时间戳+appId+秘钥)
        temp_data = str(timestamp) + str(brand_appid) + str(brand_appkey)
        #print(temp_data)
        md5 = hashlib.md5()  # 创建一个md5对象
        md5.update(temp_data.encode('utf-8'))  # 使用utf-8编码数据
        temp_sign = md5.hexdigest()  # 返回加密后的十六进制字符串
        #print("sign:" + temp_sign)

        parentList = []
        icCardList=[]
        faceList = []

        payload = json.dumps({
            "timestamp": timestamp,
            "appId": brand_appid,
            "sign": temp_sign,
            "dataList": [{
                "linkCourse1UniqueCode": "1111111111", #课程唯一标识
                 "roomUniqueCode": "5501",              #场地唯一标识
                 "week": 5,
                 "coursePeriodSort": 1,                 #课程课节序号
                 "coursePeriodName": "第一节",          #课程课节名称
                 "coursePeriodStartTime": "09:00:00",   #课程课节开始时间
                 "coursePeriodEndTime": "10:30:00",     #课程课节结束时间
                 "weekType": 5,                         #单双周：5.普通，10.单周，15.双周
                 "courseType": 10,                      #课程类型：5.行政班课程，10.走班课程
                 "courseName": "高数",                  #课程名称
                 "clazzList": [9001],                   #授课班级唯一标识列表，行政班必填
                 "studentList": ["2024501","2024502"],  #学生唯一标识列表，走班必填
                 "teacherUniqueCode": "9001",            #授课教师唯一标识
			     "atndTeacher":True,                    #教师考勤
			     "atndStudent":True                     #学生考勤
            },
            {
                  "linkCourse1UniqueCode": "1111111112", #课程唯一标识
                  "roomUniqueCode": "5501",              #场地唯一标识
                  "week": 5,
                  "coursePeriodSort": 2,               # 课程课节序号
                  "coursePeriodName": "第二节",          #课程课节名称
                  "coursePeriodStartTime": "10:40:00",   #课程课节开始时间
                  "coursePeriodEndTime": "11:30:00",     #课程课节结束时间
                  "weekType": 5,                         #单双周：5.普通，10.单周，15.双周
                  "courseType": 10,                      #课程类型：5.行政班课程，10.走班课程
                  "courseName": "生物",                   #课程名称
                  "clazzList": [9001],                   #授课班级唯一标识列表，行政班必填
                  "studentList": ["2024501","2024502"],  #学生唯一标识列表，走班必填
                  "teacherUniqueCode": "9001",            #授课教师唯一标识
			      "atndTeacher":True,                    #教师考勤
			      "atndStudent":True                     #学生考勤
            },
            {
                  "linkCourse1UniqueCode": "1111111113", #课程唯一标识
                  "roomUniqueCode": "5501",              #场地唯一标识
                  "week": 5,
                  "coursePeriodSort": 3,               # 课程课节序号
                  "coursePeriodName": "第三节",          #课程课节名称
                  "coursePeriodStartTime": "13:30:00",   #课程课节开始时间
                  "coursePeriodEndTime": "15:30:00",     #课程课节结束时间
                  "weekType": 5,                         #单双周：5.普通，10.单周，15.双周
                  "courseType": 10,                      #课程类型：5.行政班课程，10.走班课程
                  "courseName": "音乐",                   #课程名称
                  "clazzList": [9001],                   #授课班级唯一标识列表，行政班必填
                  "studentList": ["2024501","2024502"],  #学生唯一标识列表，走班必填
                  "teacherUniqueCode": "9001",            #授课教师唯一标识
			      "atndTeacher":True,                    #教师考勤
			      "atndStudent":True                     #学生考勤
            },
            {
                  "linkCourse1UniqueCode": "1111111114", #课程唯一标识
                  "roomUniqueCode": "5501",              #场地唯一标识
                  "week": 5,
                  "coursePeriodSort": 4,               # 课程课节序号
                  "coursePeriodName": "第四节",          #课程课节名称
                  "coursePeriodStartTime": "15:40:00",   #课程课节开始时间
                  "coursePeriodEndTime": "17:30:00",     #课程课节结束时间
                  "weekType": 5,                         #单双周：5.普通，10.单周，15.双周
                  "courseType": 10,                      #课程类型：5.行政班课程，10.走班课程
                  "courseName": "体育",                   #课程名称
                  "clazzList": [9001],                   #授课班级唯一标识列表，行政班必填
                  "studentList": ["2024501","2024502"],  #学生唯一标识列表，走班必填
                  "teacherUniqueCode": "9001",            #授课教师唯一标识
			      "atndTeacher":True,                    #教师考勤
			      "atndStudent":True                     #学生考勤
            },#周一
            {
                "linkCourse1UniqueCode": "1111111101",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 1,
                "coursePeriodSort": 1,  # 课程课节序号
                "coursePeriodName": "第一节",  # 课程课节名称
                "coursePeriodStartTime": "09:00:00",  # 课程课节开始时间
                "coursePeriodEndTime": "10:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "英语",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111111102",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 1,
                "coursePeriodSort": 2,  # 课程课节序号
                "coursePeriodName": "第二节",  # 课程课节名称
                "coursePeriodStartTime": "10:40:00",  # 课程课节开始时间
                "coursePeriodEndTime": "11:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "物理",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111111103",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 1,
                "coursePeriodSort": 3,  # 课程课节序号
                "coursePeriodName": "第三节",  # 课程课节名称
                "coursePeriodStartTime": "13:30:00",  # 课程课节开始时间
                "coursePeriodEndTime": "15:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "数学",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111111104",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 1,
                "coursePeriodSort": 4,  # 课程课节序号
                "coursePeriodName": "第四节",  # 课程课节名称
                "coursePeriodStartTime": "15:40:00",  # 课程课节开始时间
                "coursePeriodEndTime": "17:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "语文",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },#周二
            {
                "linkCourse1UniqueCode": "1111111001",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 2,
                "coursePeriodSort": 1,  # 课程课节序号
                "coursePeriodName": "第一节",  # 课程课节名称
                "coursePeriodStartTime": "09:00:00",  # 课程课节开始时间
                "coursePeriodEndTime": "10:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "语文",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111111002",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 2,
                "coursePeriodSort": 2,  # 课程课节序号
                "coursePeriodName": "第二节",  # 课程课节名称
                "coursePeriodStartTime": "10:40:00",  # 课程课节开始时间
                "coursePeriodEndTime": "11:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "化学",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111111003",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 2,
                "coursePeriodSort": 3,  # 课程课节序号
                "coursePeriodName": "第三节",  # 课程课节名称
                "coursePeriodStartTime": "13:30:00",  # 课程课节开始时间
                "coursePeriodEndTime": "15:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "音乐",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111111004",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 2,
                "coursePeriodSort": 4,  # 课程课节序号
                "coursePeriodName": "第四节",  # 课程课节名称
                "coursePeriodStartTime": "15:40:00",  # 课程课节开始时间
                "coursePeriodEndTime": "17:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "数学",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },#周三
            {
                "linkCourse1UniqueCode": "1111110001",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 3,
                "coursePeriodSort": 1,  # 课程课节序号
                "coursePeriodName": "第一节",  # 课程课节名称
                "coursePeriodStartTime": "09:00:00",  # 课程课节开始时间
                "coursePeriodEndTime": "10:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "数学",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111110002",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 3,
                "coursePeriodSort": 2,  # 课程课节序号
                "coursePeriodName": "第二节",  # 课程课节名称
                "coursePeriodStartTime": "10:40:00",  # 课程课节开始时间
                "coursePeriodEndTime": "11:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "物理",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111110003",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 3,
                "coursePeriodSort": 3,  # 课程课节序号
                "coursePeriodName": "第三节",  # 课程课节名称
                "coursePeriodStartTime": "13:30:00",  # 课程课节开始时间
                "coursePeriodEndTime": "15:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "体育",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111110004",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 3,
                "coursePeriodSort": 4,  # 课程课节序号
                "coursePeriodName": "第四节",  # 课程课节名称
                "coursePeriodStartTime": "15:40:00",  # 课程课节开始时间
                "coursePeriodEndTime": "17:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "美术",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },#周四
            {
                "linkCourse1UniqueCode": "1111100001",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 4,
                "coursePeriodSort": 1,  # 课程课节序号
                "coursePeriodName": "第一节",  # 课程课节名称
                "coursePeriodStartTime": "09:00:00",  # 课程课节开始时间
                "coursePeriodEndTime": "10:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "化学",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111100002",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 4,
                "coursePeriodSort": 2,  # 课程课节序号
                "coursePeriodName": "第二节",  # 课程课节名称
                "coursePeriodStartTime": "10:40:00",  # 课程课节开始时间
                "coursePeriodEndTime": "11:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "语文",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111100003",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 4,
                "coursePeriodSort": 3,  # 课程课节序号
                "coursePeriodName": "第三节",  # 课程课节名称
                "coursePeriodStartTime": "13:30:00",  # 课程课节开始时间
                "coursePeriodEndTime": "15:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "英语",  # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            },
            {
                "linkCourse1UniqueCode": "1111100004",  # 课程唯一标识
                "roomUniqueCode": "5501",  # 场地唯一标识
                "week": 4,
                "coursePeriodSort": 4,  # 课程课节序号
                "coursePeriodName": "第四节",  # 课程课节名称
                "coursePeriodStartTime": "15:40:00",  # 课程课节开始时间
                "coursePeriodEndTime": "17:30:00",  # 课程课节结束时间
                "weekType": 5,  # 单双周：5.普通，10.单周，15.双周
                "courseType": 10,  # 课程类型：5.行政班课程，10.走班课程
                "courseName": "道德",   # 课程名称
                "clazzList": [9001],  # 授课班级唯一标识列表，行政班必填
                "studentList": ["2024501", "2024502"],  # 学生唯一标识列表，走班必填
                "teacherUniqueCode": "9001",  # 授课教师唯一标识
                "atndTeacher": True,  # 教师考勤
                "atndStudent": True  # 学生考勤
            }]
        })

        headers = {
            'Content-Type': 'application/json'
        }
        response = requests.request("POST", brand_url + "/course1/v1", headers=headers, data=payload)
        # res = response.text.encode('utf8')
        data = response.json()
        # data = data.decode("utf-8")
        print(data)
        # logger.info('141:' + data.decode("utf-8"))
        response.close()

        # json_str = json.loads(data)
        # ierrCode = json_str["errCode"]
    except Exception as e:
        print(str(e))


#
doAddCourse()